package com.example.service.user;

import com.example.dto.request.community.DynamicCommentRequestDTO;
import com.example.dto.request.PageRequestDTO;
import com.example.exception.InsertException;
import com.example.exception.community.DynamicNotExistException;
import com.example.dto.business.DynamicCommentBusinessDTO;

import java.util.List;

/**
 * @author LeXin Huang
 * @date 2021年03月29日 16:52
 */
public interface CommunityDynamicCommentService {

    /**
     * 向指定 id 的动态中添加评论
     * @param requestDTO 数据dto
     * @throws DynamicNotExistException 当给定 id 的动态不存在时
     * @throws InsertException 当评论失败时
     */
    void addComment(DynamicCommentRequestDTO requestDTO) throws DynamicNotExistException, InsertException;

    /**
     * 分页查询指定 id 动态的评论
     * @param dynamicId 动态id
     * @param pageRequestDTO 分页数据传输对象
     * @return 评论结果集
     * @throws DynamicNotExistException 当给定 id 的动态不存在时
     */
    List<DynamicCommentBusinessDTO> getDynamicHistoryComments(Integer dynamicId, PageRequestDTO pageRequestDTO) throws DynamicNotExistException;
}
